﻿using System;
using System.Windows.Forms;

namespace SpriteAnimator
{
    /// <summary>
    /// Form de saisie simple
    /// </summary>
    public partial class frmInputBox: Form
    {
        #region Constructeur

        /// <summary>
        /// Constructeur de la form
        /// </summary>
        /// <param name="p_sTitre">Titre de la fenêtre</param>
        /// <param name="p_sMessage">Message avant saisie</param>
        /// <param name="p_sValeur">Valeur par défaut</param>
        public frmInputBox(string p_sTitre, string p_sMessage, string p_sValeur)
        {
            this.InitializeComponent();

            // *** Initialisation ***

            this.Text = p_sTitre;
            this.lblTexte.Text = p_sMessage;
            this.txtSaisie.Text = p_sValeur;
            this.DialogResult = DialogResult.Cancel;
        }

        #endregion

        #region Evénements de l'application

        /// <summary>
        /// Click sur le bouton Ok
        /// </summary>
        /// <param name="sender">Source de l'appel</param>
        /// <param name="e">Argument de l'appel</param>
        private void cmdOk_Click(object sender, EventArgs e)
        {
            // *** Test valeur saisie ***

            if ( string.IsNullOrEmpty(this.txtSaisie.Text) )
            {
                MessageBox.Show(this, "Vous devez saisir une valeur pour valider.", "Avertissement", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            // *** Terminée ***

            this.DialogResult = DialogResult.OK;
            this.Close();
        }

        /// <summary>
        /// Click sur le bouton Cancel
        /// </summary>
        /// <param name="sender">Source de l'appel</param>
        /// <param name="e">Argument de l'appel</param>
        private void cmdCancel_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }

        #endregion

        #region Indexer

        /// <summary>
        /// Retourne la valeur saisie
        /// </summary>
        public string Value
        {
            get
            {
                return (this.txtSaisie.Text);
            }
        }

        #endregion
    }
}
